package com.tuonbed.qrqd;

import com.itextpdf.text.Document;
import com.itextpdf.text.Image;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.*;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;


/**
 * 生成PDF文件
 */
public class PdfUtil {

    /**
     *
     * @param fileName
     *            生成pdf文件
     * @param imagesPath
     *            需要转换的图片路径的数组
     */
    public static void imagesToPdf(String fileName, String imagesPath) {
        try {
            fileName = imagesPath+"\\"+fileName+".pdf";
            File file = new File(fileName);
            // 第一步：创建一个document对象。
            Document document = new Document(PageSize.A4, 20, 20, 20, 20); //new一个pdf文档
            // 第二步：
            // 创建一个PdfWriter实例，
            PdfWriter.getInstance(document, new FileOutputStream(file));
            // 第三步：打开文档。
            document.open();
            // 第四步：在文档中增加图片。
            File files = new File(imagesPath);
            String[] images = files.list();
            Arrays.sort(images);

            int len = images.length;

            PdfPTable table = new PdfPTable(2);
            for (int i = 0; i < len; i++)
            {
                if (images[i].toLowerCase().endsWith(".bmp")
                        || images[i].toLowerCase().endsWith(".jpg")
                        || images[i].toLowerCase().endsWith(".jpeg")
                        || images[i].toLowerCase().endsWith(".gif")
                        || images[i].toLowerCase().endsWith(".png")) {
                    String temp = imagesPath + "\\" + images[i];
                    Image img = Image.getInstance(temp);
                    PdfPCell cell = new PdfPCell();
                    cell.addElement(img);
                    if(i%2==1){
                        img.setAlignment(Image.RIGHT);
                    }else {
                    }
                    cell.setPadding(25f);
                    cell.setRowspan(2);
                    cell.setBorder(0);
                    table.addCell(cell);
                    table.setSplitLate(false);
                    table.setSplitRows(false);
                }
            }
            document.add(table);

            document.newPage();
            // 第五步：关闭文档。
            document.close();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    public static void deleteFiles(String filePath){
        File file=new File(filePath);
        String[] images = file.list();
        for(String img:images){
            if (img.toLowerCase().endsWith(".bmp")
                    || img.toLowerCase().endsWith(".jpg")
                    || img.toLowerCase().endsWith(".jpeg")
                    || img.toLowerCase().endsWith(".gif")
                    || img.toLowerCase().endsWith(".png")) {
                String temp = filePath + "\\" + img;
                File imgfile = new File(temp);
                imgfile.deleteOnExit();
            }
        }
    }

    public static void main(String[] args) throws Exception {
        String name = "ttttttttt";
        String imagesPath = "D:\\Users\\Administrator\\IdeaProjects\\MyQrqd\\out";
        imagesToPdf(name, imagesPath);
    }


}